package com.example.backend.dto;

import com.example.backend.domain.enums.TicketPriority;
import com.example.backend.domain.enums.TicketStatus;
import com.example.backend.domain.enums.TicketSource;
import lombok.Data;

import java.math.BigDecimal;
import java.time.Instant;

/**
 * 完整的工单DTO
 */
@Data
public class TicketDto {
    private Long id;
    private String ticketNumber;
    private String title;
    private String description;
    private String descriptionDetail;
    
    // 分类信息
    private Long categoryId;
    private String categoryName;
    
    // 枚举字段
    private TicketPriority priority;
    private TicketStatus status;
    private TicketSource source;
    
    // 用户信息
    private Long customerId;
    private String customerName;
    private String customerEmail;
    
    private Long assignedToId;
    private String assignedToName;
    private String assignedToEmail;
    
    private Long createdById;
    private String createdByName;
    
    private Long resolvedById;
    private String resolvedByName;
    
    private Long closedById;
    private String closedByName;
    
    // 时间信息
    private Instant dueDate;
    private Instant resolvedAt;
    private Instant closedAt;
    private Instant createdAt;
    private Instant updatedAt;
    
    // 工时信息
    private BigDecimal estimatedHours;
    private BigDecimal actualHours;
    
    // 满意度信息
    private Integer satisfactionScore;
    private String satisfactionComment;
    
    // 其他信息
    private String internalNotes;
    private Boolean isPublic;
    private Boolean isEscalated;
    private String escalationReason;
    
    // 统计信息
    private Long commentCount;
    private Long attachmentCount;
    private Long historyCount;
}